SPSS 变量类型和格式

作者:Ruben Geert van den Berg,发表于 SPSS Blog

理解 SPSS 的变量类型和格式能够帮助你快速可靠地完成工作。掌握变量类型和格式并不难,只要忽略 变量视图 下的 非常令人困惑的 信息即可。本教程将引导你走上正确的道路。

我们鼓励你下载并打开 computer_parts.sav 文件,并跟着本教程一起操作。部分数据如下所示。

SPSS 数据视图中的变量类型和格式

SPSS 变量类型

SPSS 有 2 种变量类型

  • 数值变量 (Numeric variables):仅包含数字,适用于诸如加法和乘法之类的数值计算。
  • 字符串变量 (String variables):可以包含字母、数字和其他字符。你不能对字符串变量进行计算,即使它们仅包含数字。

SPSS 中只有字符串 (String)数值 (Numeric) 这两种变量类型。然而,数值变量有几种不同的格式,这些格式经常与变量 类型 混淆。稍后我们将看到 变量视图 (variable view) 如何在此处误导用户。

将字符串变量更改为数值变量或反之的唯一方法是使用 ALTER TYPE 命令。但是,有几种方法可以创建字符串变量的数值副本或反之。我们稍后会介绍这些方法。

哪种变量类型更好:字符串 (String) 还是数值 (Numeric)?

最简单的经验法则是,只有具有许多类别的名义变量才应在 SPSS 中设为字符串变量。例如,人名、电子邮件地址、护照号码等。虽然这些变量可能很有用,但我们通常不分析它们。

我们 有时 会分析类别较少的名义变量,例如国籍、血型或职业。如果这些是字符串变量,它们可能会也可能不会引起麻烦。例如,ANOVA (方差分析) 的自变量可以是 字符串变量 ,也可以不是,具体取决于你使用的确切命令。准确地说,UNIANOVA 接受字符串变量作为因子,而 ONEWAY 不接受。

你可以将这些变量保留为字符串。但是,将它们复制到数值变量中可以确保你避免所有麻烦。一个不错的方法是使用 AUTORECODE 命令。对于将度量字符串变量(仅包含数字)转换为数值变量,请参阅 SPSS 字符串转换为数值变量

确定 SPSS 变量类型

那么,我们如何知道一个变量是字符串 (String) 还是数值 (Numeric)?在 SPSS 24 及更高版本中,变量名称前面的小图标会告诉我们变量类型、格式,甚至测量级别。 “名义 (nominal)”图标可能包含一个小的 “a”,表示它是一个字符串变量。

SPSS 变量类型和格式,显示在变量标题的图标中

对于 SPSS 23 及更早版本,我们将检查我们的 变量视图 (variable view) 并使用以下规则:

  • 如果“类型 (Type)”显示“字符串 (String)”,则你正在处理一个字符串变量;
  • 如果“类型 (Type)”未显示“字符串 (String)”,则你正在处理一个数值变量。

SPSS 变量类型和格式

SPSS 建议“日期 (Date)”和“美元 (Dollar)”也是变量类型。但是,这些是 格式 (format)不是类型 (type)。它们与实际变量类型(字符串和数值)一起显示在这里,是 SPSS 最令人困惑的功能之一。

SPSS 变量格式 - 简介

现在让我们看看数据视图中的数据,如下面的屏幕截图所示。我们将简要描述我们看到的变量种类。

SPSS 变量类型和格式

关于这些数据,我们之前说过:

是一个字符串变量,而 是数值变量,并且仅包含数字

然而,“26-jan-2015”之类的数值肯定 看起来 不像数字,不是吗?这是因为 SPSS 可以以非常不同的方式 显示 数字。这些显示数据值的方式称为 变量格式 (variable formats)

确定 SPSS 变量格式

正如我们之前看到的,“变量视图 (variable view)”下的“类型 (Type)”显示了变量类型和格式的令人困惑的混合。我们将通过运行 display dictionary. 命令来查看实际格式。结果的一部分由下面的屏幕截图显示。

SPSS 变量格式

SPSS 区分打印 (print) 和写入 (write) 格式,但我们不关心这种区别。 SPSS 变量格式由两部分组成。一个或多个字母表示 格式族 (format family)。除了前两个变量外,它们中的大多数都一目了然:

  • A (“字母数字 (Alphanumeric)”)是 字符串变量 (string variables) 的常用格式;
  • F(“Fortran”)表示 标准数值变量 (standard numeric variable)

格式以数字结尾,表示要显示的字符数。如果存在句点,则句点后的数字表示要显示的小数位数。下图说明了这些要点。

SPSS 变量类型与格式

SPSS 常用变量格式

下图总结了我们将在 SPSS 中遇到的一些常见变量类型和格式。

SPSS 变量类型与格式

在 SPSS 中设置变量格式

你可以使用 FORMATS 命令为数值变量设置变量格式。例如,formats weight (f4.3). 显示了带有 3 位小数的权重。这样做会影响你创建的 输出 (output):大多数表格也会为权重添加一位额外的小数。如果你想亲眼看看,请运行以下语法并比较 2 个结果表。

***显示 2 位小数的权重并运行描述性统计.
FORMATS weight(f3.2).

DESCRIPTIVES weight.

***显示 3 位小数的权重并运行描述性统计.
FORMATS weight(f4.3).

DESCRIPTIVES weight.

***注意,第二个输出表显示了更多的小数位.**

请记住,更改变量格式 不会 以任何方式更改你的数据。实际值仍然是完全相同的数字。它们只是以不同的方式 显示

变量类型和格式 - 为什么要费心?

基本上,在数据视图中“你看到的 不是 你得到的”。例如,我们看到 $20.37,但实际值只是 20.37。因此,我们可以通过 运行以下语法 来识别花费 $20 或更多的产品:compute expensive = (price >= 20). 我们 不在语法中包含美元符号。尽管 SPSS 在数据视图中显示美元符号,但实际值只是数字,这些是语法所作用的对象。

或者,假设我们想在我们的日期变量中添加 30 天。我们可以通过运行 compute newdate = datesum(date,30,'days'). 来做到这一点。结果值为 13644236937.72。这些是正确的 数字,但只有在运行类似 formats newdate (date11). 的命令后,它们才会显示为可读的日期。关心变量格式的另一个原因是为 输出 表设置 小数位。对于 SPSS 22 及更高版本,OUTPUT MODIFY 命令可以解决问题,如下所示。

***创建基本描述性统计表.**
DESCRIPTIVES weight.

***为平均值和标准差(第 4 列和第 5 列)设置 2 位小数(格式 = f3.2)。**
OUTPUT MODIFY
  /SELECT TABLES
  /TABLECELLS SELECT=[POSITION(4) POSITION(5)] SELECTDIMENSION=COLUMNS
   FORMAT='f3.2'.

以类似的方式,CTABLES 允许为输出中的不同统计量选择不同的格式。

***创建描述性统计表,为不同的统计量设置不同的小数位.**
CTABLES
  /TABLE commission [COUNT 'N' F3 MINIMUM PCT3 MAXIMUM PCT3 MEAN 'Mean' PCT4.1
   STDDEV 'SD' PCT4.1].

最后的说明

本教程在某种程度上是理论性的,但它具有许多实际意义。希望你觉得它有帮助。

感谢阅读!